package calculatorEngine;

import javax.swing.JButton;

//Pawel, 28.11.2013, 21:30

public class Seat extends JButton implements Cloneable {

	private static final long serialVersionUID = -1577861524346825650L;

	//znacznik statusu siedzenia, zajete
	public static final int TAKEN = 1;
	
	//znacznik statusu siedzenia, wolne
	public static final int FREE = 0;
	
	/*znacznik klasy siedzenia, wolne lub zajete, uzywane do dopasowania jak najlepszego
	miejsca przy wywazaniu samolotu*/
	public static final int ANY_CLASS = 666;
	
	//siedzienie nieczynne, np. dlatego ze to nie siedzienie tylko korytarz
	public static final int OUT_OF_ORDER = 3;
	
	//znacznik statusu siedzenia, ekonomiczne
	public static final int ECONOMIC_CLASS = 4;
	
	//znacznik statusu siedzenia, biznesowe
	public static final int BUSINESS_CLASS = 5;
	
	//znacznik preferencji, window
	public static final String WINDOW = "W";
	
	// znacznik preferencji, aisle(korytarz)
	public static final String AISLE = "A";
	
	// znacznik preferencji, middle ( >3 miejsca z rzedu bez corridora)
	public static final String MIDDLE = "M";
	
	//znacznik preferencji, none
	public static final String NONE = "N";
	
	//znacznik zadowolenia, nie
	public static final int NOT_HAPPY = 7;
	
	//znacznik zadowolenia, tak
	public static final int HAPPY = 8;
	
	//znacznik zadowolenia, brak
	public static final int NO_DATA = 9;

	//Mik 26.01.14
	//nazwa siedzenia
	private int rowNo;
	private char columnStr;
	
	// Mikolaj, 12.01.14, 20:30
	// imie pasazera
	private String paxFirstName = "";
	
	//nazwisko pasazera
	
	private String paxLastName = "";
	
	// numer biletu
	private String ticketNumber = "";
	
	//domyslne preferencje dotyczace miejsca nie istnieja
	private String preferences = NONE;
	
	//domyslnie miejsca sa wolne
	private int status = FREE;
	
	//domyslnie miejsca sa klasy ekonomicznej
	private int comfortClass = ECONOMIC_CLASS;
	
	//domyslnie zadowolenie, brak
	private int happiness = NO_DATA;
	
	public Seat() {
		//tworzy wolne siedzenie w klasie ekonomicznej
	}
	
	public Seat(int status, int comfortClass) {
		
		this.status = status;
		this.comfortClass = comfortClass;
		
	}
	
	public Seat(int status, Seat seat) {
				
		this.setStatus(status);
		this.setComfortClass(seat.getComfortClass());
		this.setPreferences(seat.getPreferences());
		this.setFirstName(seat.getFirstName());
		this.setLastName(seat.getLastName());
		this.setRowNo(seat.getRowNo());
		this.setColumnStr(seat.getColumnStr());
		this.setTicketNumber(seat.getTicketNumber());
		this.setHappiness(seat.isHappy());
				
	}
	
	public void setStatus(int status) {
		
		this.status = status;
		
	}
	
	public void setComfortClass(int comfortClass) {
		
		this.comfortClass = comfortClass;
		
		if (comfortClass == Seat.OUT_OF_ORDER) this.status = Seat.TAKEN;
		
	}
	
	public int getStatus() {
		
		return this.status;
		
	}
	
	public int getComfortClass() {
		
		return this.comfortClass;
		
	}
	
	public void setPreferences(String preferences) {
		
		this.preferences = new String(preferences);
	}
	
	public String getPreferences() {
		
		return this.preferences;
	}
	
	public void addFirstName(String firstName) { 
		
		this.paxFirstName = new String(firstName);
		
	}
	
	public void addLastName(String lastName) {
		
		this.paxLastName = new String(lastName);
	
	}
	
	public String getFirstName() {
		
		return this.paxFirstName;
	}
	
	public String getLastName() {
		
		return this.paxLastName;
	}
	
	public void setTicketNumber(String ticketNumber){
		
		this.ticketNumber = new String(ticketNumber);
		
	}
	
	public String getTicketNumber() {
		
		return this.ticketNumber;
	}
	
	public void setRowNo (int rowNo) {
		
		this.rowNo = rowNo;
	}
	
	public void setColumnStr (char columnStr) {
		
		this.columnStr = columnStr;
	}
	
	public int getRowNo() {
		
		return this.rowNo;
	}
	
	public char getColumnStr() {
		
		return this.columnStr;
	}
	
	public void setHappiness(int happiness) {
		
		this.happiness = happiness;
		
	}
	
	public int isHappy() {
		
		return this.happiness;
		
	}
	
	public void setFirstName(String s) {
		
		this.paxFirstName = new String(s);
		
	}
	
	public void setLastName(String s) {
		
		this.paxLastName = new String(s);
		
	}
	
}
